home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Presen…tion Library 2 (Reseller) / Apple R&P Lib Reseller v2.0.iso / 3-Demos / HyperCard Demos / HyperCard In Education / Towers of Hanoi / stack.txt < prev   
Text File  |  1989-07-14  |  5KB  |  129 lines

  1. -- stack: in
  2. -- format: 8 (HyperCard 1)
  3. -- flags: 0x1000 (none)
  4. -- protect password hash: 0
  5. -- maximum user level: 5 (scripting)
  6. -- window: Rect(x1=0, y1=0, x2=0, y2=0)
  7. -- screen: Rect(x1=0, y1=0, x2=0, y2=0)
  8. -- card dimensions: w=0 h=0
  9. -- scroll: x=0 y=0
  10. -- background count: 1
  11. -- first background id: 2783
  12. -- card count: 1
  13. -- first card id: 3043
  14. -- list block id: 2369
  15. -- print block id: 0
  16. -- font table block id: 0
  17. -- style table block id: 0
  18. -- free block count: 2
  19. -- free size: 5952 bytes
  20. -- total size: 24576 bytes
  21. -- stack block size: 4096 bytes
  22. -- created by hypercard version: 0x00000000
  23. -- compacted by hypercard version: 0x01228000
  24. -- modified by hypercard version: 0x01228000
  25. -- opened by hypercard version: 0x01228000
  26. -- patterns[0]: 0x0000000000000000
  27. -- patterns[1]: 0x8000000008000000
  28. -- patterns[2]: 0x8800220088002200
  29. -- patterns[3]: 0x8888222288882222
  30. -- patterns[4]: 0x88AA22AA88AA22AA
  31. -- patterns[5]: 0xCCAA33AACCAA33AA
  32. -- patterns[6]: 0xEEAABBAAEEAABBAA
  33. -- patterns[7]: 0xEEBBBBEEEEBBBBEE
  34. -- patterns[8]: 0xFFBBFFEEFFBBFFEE
  35. -- patterns[9]: 0xFFBBFFFFFFBBFFFF
  36. -- patterns[10]: 0x8010022001084004
  37. -- patterns[11]: 0xFFFFFFFFFFFFFFFF
  38. -- patterns[12]: 0x8822882288228822
  39. -- patterns[13]: 0x1122448811224488
  40. -- patterns[14]: 0xC4800C6843023026
  41. -- patterns[15]: 0xB130031BD8C00C8D
  42. -- patterns[16]: 0xAA00AA00AA00AA00
  43. -- patterns[17]: 0x8822552288225522
  44. -- patterns[18]: 0x8855225588552255
  45. -- patterns[19]: 0x77DD77DD77DD77DD
  46. -- patterns[20]: 0x8000000000000000
  47. -- patterns[21]: 0xAA55AA55AA55AA55
  48. -- patterns[22]: 0x038448300C020101
  49. -- patterns[23]: 0x8244394482010101
  50. -- patterns[24]: 0x8814224188412214
  51. -- patterns[25]: 0x8080413E080814E3
  52. -- patterns[26]: 0x22048C7422179810
  53. -- patterns[27]: 0xBE808808EB088880
  54. -- patterns[28]: 0x25C8328964244C92
  55. -- patterns[29]: 0xA29C41BE2AC914EB
  56. -- patterns[30]: 0x40A00000040A0000
  57. -- patterns[31]: 0x8040200002040800
  58. -- patterns[32]: 0xAA00800088008000
  59. -- patterns[33]: 0xFF80808080808080
  60. -- patterns[34]: 0x081C22C180010204
  61. -- patterns[35]: 0xFF808080FF080808
  62. -- patterns[36]: 0xF87422478F172271
  63. -- patterns[37]: 0xBF00BFBFB0B0B0B0
  64. -- patterns[38]: 0xFF7FBE5DA2418000
  65. -- patterns[39]: 0xFAF5FAF5A050A050
  66. -- checksum: 0x0
  67. ----- HyperTalk script -----
  68. on domenu menu -- Script added by Animatrix 7/14/89
  69.   global RPstackname,RPcardname
  70.   if menu is in "Home,Quit HyperCard" then
  71.     if RPstackname is not empty then
  72.       answer "This will return to "&RPStackname&"."
  73.       set cursor to watch
  74.       lock screen
  75.       go card RPcardname of stack RPstackname
  76.       unlock screen with dissolve
  77.       exit domenu
  78.     else pass domenu -- if RPstackname is empty
  79.   else
  80.     pass domenu -- if menu is not in home or quit
  81.   end if
  82. end domenu
  83.  
  84. -- Copyright ¬© 1988 Cincinnati Country Day School.  All rights reserved.
  85.  
  86. -- This is the recursive algorithm that moves a tower of "height" disks
  87. -- from the "source" pole to the "dest" pole using the "aux" pole as
  88. -- the auxiliary.  It works as follows:  if height is 0, there is no
  89. -- tower to move, and if source = dest, there is no movement, so in
  90. -- this case the algorithm exits having done nothing.  Otherwise, the
  91. -- algorithm recursively calls itself to move a tower of height - 1
  92. -- disks from the source to the auxiliary via the destination.  Having
  93. -- thus moved all overlying disks out of the way, the algorithm then
  94. -- simply moves disk number "Height" from the source to the destination.
  95. -- Finally, it again calls itself recursively to move the tower of
  96. -- height - 1 disks from the auxiliary to the destination on top of disk
  97. -- number "Height."  See the script of the background for the details
  98. -- of other handlers.
  99.  
  100. on moveTower height, source, dest, aux
  101.   add 1 to field depth
  102.   if height > 0 and source ‚↠dest then
  103.     moveTower height - 1, source, aux, dest
  104.     moveDisk height, source, dest
  105.     moveTower height - 1, aux, dest, source
  106.   end if
  107.   subtract 1 from field depth
  108. end moveTower
  109.  
  110. on moveDisk n, source, dest
  111.   global yBase, dHeight, stackHeight, xPole, poleTop
  112.   get "Disk" && n
  113.   put the loc of bkgnd button it into dSource
  114.   put "0,0" into dDest1
  115.   put item source of xPole into item 1 of dDest1
  116.   put poleTop into item 2 of dDest1
  117.   put dDest1 into dDest2
  118.   put item dest of xPole into item 1 of dDest2
  119.   put dDest2 into dDest3
  120.   put yBase - dHeight * item dest of stackHeight into item 2 of dDest3
  121.   drag from dSource to dDest1
  122.   drag from dDest1 to dDest2
  123.   drag from dDest2 to dDest3
  124.   subtract 1 from item source of stackHeight
  125.   add 1 to item dest of stackHeight
  126.   add 1 to field moves
  127. end moveDisk
  128.  
  129.